package Test01;

//map集合的第二种遍历方式

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;

public class Test03 {
    public static void main(String[] args) {

        //1、创建Map集合的对象
        Map<String, String> map = new HashMap<>();

        //2、添加数据
        map.put("郭靖", "黄蓉");
        map.put("韦小宝", "沐剑屏");
        map.put("杨过", "小龙女");

        //3、遍历（通过键值对）

        //3.1通过一个方法获取所有的键值对对象，返回一个Set集合
        Set<Map.Entry<String, String>> entries = map.entrySet();

        /*//3.2利用增强for遍历entries这个集合，去得到里面的每一个键值对对象（第一种写法）
        for (Map.Entry<String, String> entry : entries) {
            //3.3利用entry调用get方法获取键和值
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + "=" + value);
        }*/

        //3.2利用增强for遍历entries这个集合，去得到里面的每一个键值对对象（第二种写法）
        for (Map.Entry<String, String> entry : map.entrySet()) {
            //3.3利用entry调用get方法获取键和值
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + "=" + value);
        }

        /*//3.2利用迭代器遍历entries这个集合，去得到里面的每一个键值对对象
        Iterator<Map.Entry<String, String>> it = entries.iterator();
        while (it.hasNext()) {
            Map.Entry<String, String> entry = it.next();
            //3.3利用entry调用get方法获取键和值
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + "=" + value);
        }*/

        /*//3.2利用Lambda表达式遍历entries这个集合，去得到里面的每一个键值对对象
        entries.forEach(entry -> {
                    //3.3利用entry调用get方法获取键和值
                    String key = entry.getKey();
                    String value = entry.getValue();
                    System.out.println(key + "=" + value);
                }
        );*/
    }
}
